// 物品数据（简化，可扩展等级、合成规则）
const ITEM_DATA = [
  { id: 1, name: "watermelon", src: "https://cdn-icons-png.flaticon.com/512/927/927497.png" }, // 西瓜示例图
  { id: 2, name: "bowl", src: "https://cdn-icons-png.flaticon.com/512/3179/3179374.png" },    // 碗示例图
  { id: 3, name: "boat", src: "https://cdn-icons-png.flaticon.com/512/461/461853.png" },     // 船示例图
  // 可继续扩展更多物品...
];

// 游戏全局状态
let gameGrid = [];       // 二维数组存网格数据
let selectedCell = null; // 当前选中的单元格
const gridSize = { w: 8, h: 10 }; // 网格尺寸（8列10行）

// 初始化游戏
function initGame() {
  createGrid();
  spawnInitialItems();
}

// 创建网格DOM
function createGrid() {
  const gridDom = document.getElementById("game-grid");
  for (let y = 0; y < gridSize.h; y++) {
    gameGrid[y] = [];
    for (let x = 0; x < gridSize.w; x++) {
      const cell = document.createElement("div");
      cell.className = "grid-cell";
      cell.dataset.x = x;
      cell.dataset.y = y;
      cell.onclick = () => cellClickHandler(cell, x, y);
      gridDom.appendChild(cell);
      gameGrid[y][x] = { dom: cell, item: null }; // 存DOM和物品数据
    }
  }
}

// 随机生成初始物品
function spawnInitialItems() {
  for (let y = 0; y < gridSize.h; y++) {
    for (let x = 0; x < gridSize.w; x++) {
      if (Math.random() < 0.6) { // 60%概率生成物品
        const randomItem = ITEM_DATA[Math.floor(Math.random() * ITEM_DATA.length)];
        setCellItem(x, y, randomItem);
      }
    }
  }
}

// 设置单元格物品
function setCellItem(x, y, item) {
  const cellData = gameGrid[y][x];
  cellData.item = item;
  
  const img = document.createElement("img");
  img.src = item.src;
  // 先清空再添加，避免重复
  cellData.dom.innerHTML = "";
  cellData.dom.appendChild(img);
}

// 单元格点击事件
function cellClickHandler(cellDom, x, y) {
  const cellData = gameGrid[y][x];
  
  // 处理选中逻辑：选第一个/选第二个（判断合成）
  if (!selectedCell) {
    selectedCell = { x, y, data: cellData };
    cellDom.style.border = "2px solid #ffd700"; // 高亮选中
  } else {
    // 判断是否可合成（简化规则：同物品可合成）
    if (cellData.item && cellData.item.id === selectedCell.data.item.id) {
      mergeItems(selectedCell, { x, y, data: cellData });
    }
    // 清空选中状态
    selectedCell.data.dom.style.border = "";
    selectedCell = null;
  }
}

// 执行合成逻辑
function mergeItems(cellA, cellB) {
  // 1. 清空原物品
  cellA.data.dom.innerHTML = "";
  cellB.data.dom.innerHTML = "";
  cellA.data.item = null;
  cellB.data.item = null;
  
  // 2. 生成合成后物品（这里简化：直接选下一个物品，实际需配合成表）
  const mergedItem = ITEM_DATA.find(item => item.id === cellA.data.item.id + 1) 
                    || ITEM_DATA[0]; // 无更高等级则返回基础物品
  
  // 3. 随机选一个格子放合成结果（这里选cellA位置）
  setCellItem(cellA.x, cellA.y, mergedItem);
  
  // 4. 简单更新金币（演示用）
  updateGold(10);
}

// 更新金币（顶部信息栏）
function updateGold(amount) {
  const goldDom = document.getElementById("gold");
  goldDom.innerText = parseInt(goldDom.innerText) + amount;
}

// 页面加载后初始化
window.onload = initGame;
